package com.xiaozhengkeji.springcloud.ezcloud.common.core.base.mapper.user;

import com.xiaozhengkeji.springcloud.ezcloud.common.core.base.entitys.user.SystemUserEntity;
import java.time.LocalDateTime;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface SystemUserEntityMapper {
    /**
     * delete by primary key
     *
     * @param uid primaryKey
     * @return deleteCount
     */
    int deleteByPrimaryKey(Integer uid);

    /**
     * insert record to table
     *
     * @param record the record
     * @return insert count
     */
    int insert(SystemUserEntity record);

    /**
     * insert record to table selective
     *
     * @param record the record
     * @return insert count
     */
    int insertSelective(SystemUserEntity record);

    /**
     * select by primary key
     *
     * @param uid primary key
     * @return object by primary key
     */
    SystemUserEntity selectByPrimaryKey(Integer uid);

    /**
     * update record selective
     *
     * @param record the updated record
     * @return update count
     */
    int updateByPrimaryKeySelective(SystemUserEntity record);

    int updateByPrimaryKeyWithBLOBs(SystemUserEntity record);

    /**
     * update record
     *
     * @param record the updated record
     * @return update count
     */
    int updateByPrimaryKey(SystemUserEntity record);

    List<SystemUserEntity> queryByAll(SystemUserEntity systemUserEntity);

    List<SystemUserEntity> findByMailboxLike(@Param("likeMailbox") String likeMailbox);

    List<SystemUserEntity> findByUsernameLike(@Param("likeUsername") String likeUsername);

    List<SystemUserEntity> queryByUsername(@Param("username") String username);

    List<SystemUserEntity> queryByMailbox(@Param("mailbox") String mailbox);

    List<SystemUserEntity> queryByStatus(@Param("status") Integer status);

    List<SystemUserEntity> findByPhoneLike(@Param("likePhone") String likePhone);
}